export default class Lock {
    constructor() {
      this.flag = false;
      this.data = {}; // 这个data可以根据业务需要保留或移除，是用于传递值的。
    }
  
    wait() { // 等待锁
      return new Promise(resolve => {
        if (this.flag) {
          resolve(this.data);
        } else {
          this.resolve = resolve;
        }
      });
    }
  
    notify(data = {}) { // 通知锁
      this.data = data;
      this.flag = true;
      this.resolve && this.resolve(this.data);
    }
  }
  
  